// 用户模型
const { DataTypes } = require('sequelize');
// 数据库实例
const sequelize = require('@/config/db');

/**
 * 用户表
 */
const User = sequelize.define('User', {
  // 账号
  account: {
    type: DataTypes.STRING,
    allowNull: false,
    unique: true
  },
  // 密码
  password: {
    type: DataTypes.STRING,
    allowNull: false
  },
  // 用户昵称
  nickname: {
    type: DataTypes.STRING,
    allowNull: false
  },
  // 邮箱
  email: {
    type: DataTypes.STRING,
    allowNull: true,
    unique: true,
    validate: {
      isEmail: true // 验证邮箱格式
    }
  },
  // 手机号
  phoneNumber: {
    type: DataTypes.STRING,
    allowNull: true,
    unique: true,
    validate: {
      len: [10, 11] // 手机号长度验证
    }
  },
  // 头像
  avatar: {
    type: DataTypes.STRING,
    allowNull: true
  },
}, {
  // 其他模型选项
  timestamps: true, // 自动管理创建时间和更新时间
  paranoid: true,   // 启用软删除支持
  tableName: 'users' // 表名
});

module.exports = User